package com.bw.finance.utils.Photo;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.OSSObject;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.util.UUID;

public class DanbaoImgUtils {

    public static String upload(MultipartFile file){
        String path="";
        try {
            // Endpoint以杭州为例，其它Region请按实际情况填写。
            String endpoint = "https://oss-cn-beijing.aliyuncs.com";
            // 云账号AccessKey有所有API访问权限，建议遵循阿里云安全最佳实践，创建并使用RAM子账号进行API访问或日常运维，请登录 https://ram.console.aliyun.com 创建。
            String accessKeyId = "LTAI4GKbhq4jaShxcmexSFDh";
            String accessKeySecret = "Ho9waChFvsed1bBihbiYA8FMmr1nIm";
            String bucketName = "financeimg";
            // 创建OSSClient实例。
            OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

            //获取文件的后缀名
            String ext = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."), file.getOriginalFilename().length());

            //文件的名称
            path = UUID.randomUUID()+ext;

            //上传到image的文件夹   后面的文件的名称
            String objectName = "danbaoimg/"+path;

            // 上传文件流。
            ossClient.putObject(bucketName, objectName, file.getInputStream());

            // 关闭OSSClient。
            ossClient.shutdown();

        }catch (Exception e){
            e.printStackTrace();
        }
        return path;
    }

    public static void download(String path, HttpServletResponse response){
        try {
            // Endpoint以杭州为例，其它Region请按实际情况填写。
            String endpoint = "https://oss-cn-beijing.aliyuncs.com";
            // 云账号AccessKey有所有API访问权限，建议遵循阿里云安全最佳实践，创建并使用RAM子账号进行API访问或日常运维，请登录 https://ram.console.aliyun.com 创建。
            String accessKeyId = "LTAI4GKbhq4jaShxcmexSFDh";
            String accessKeySecret = "Ho9waChFvsed1bBihbiYA8FMmr1nIm";
            String bucketName = "financeimg";
            // 创建OSSClient实例。
            OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
            String objectName="danbaoimg/"+path;
            OSSObject ossObject = ossClient.getObject(bucketName, objectName);
            InputStream inputStream = ossObject.getObjectContent();
            byte[] b = new byte[1024];
            int len;
            while((len=inputStream.read(b))>0){
                response.getOutputStream().write(b,0,len);
            }
            // 关闭OSSClient。
            ossClient.shutdown();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}
